package org.cybzacg.convert.exception;


import org.cybzacg.convert.enums.ConversionError;

/**
 * 转换异常接口
 * 定义类型转换异常的基本行为和属性
 *
 * @author cybzacg.blog
 * @version 3.0
 * @since 3.0
 */
public interface IConversionException {

    /**
     * 获取错误类型
     *
     * @return 错误类型
     */
    ConversionError getErrorType();

    /**
     * 获取源类型
     *
     * @return 源类型
     */
    Class<?> getSourceType();

    /**
     * 获取目标类型
     *
     * @return 目标类型
     */
    Class<?> getTargetType();

    /**
     * 获取源值
     *
     * @return 源值
     */
    Object getSourceValue();

    /**
     * 获取详细错误信息
     *
     * @return 详细错误信息
     */
    String getDetailMessage();

    /**
     * 获取异常消息
     *
     * @return 异常消息
     */
    String getMessage();

    /**
     * 获取原因异常
     *
     * @return 原因异常
     */
    Throwable getCause();
}
